package co.edu.usbcali.pqr.modelo.control;

import java.util.List;

import co.edu.usbcali.pqr.modelo.AnexosPqr;
import co.edu.usbcali.pqr.modelo.MotivoReclamacion;
import co.edu.usbcali.pqr.modelo.MotivoSolicitud;
import co.edu.usbcali.pqr.modelo.TipoSolicitudPqr;
import co.edu.usbcali.pqr.modelo.dto.AnxsXTpSolDTO;
import co.edu.usbcali.pqr.modelo.dto.MotReclXTpSolDTO;
import co.edu.usbcali.pqr.modelo.dto.MotSolXTpSolDTO;
import co.edu.usbcali.pqr.modelo.dto.TipoSolicitudPqrDTO;


/**
* @author Zathura Code Generator http://code.google.com/p/zathura
*
*/
public interface ITipoSolicitudPqrLogic {
    public List<TipoSolicitudPqr> getTipoSolicitudPqr()
        throws Exception;

    /**
         * Save an new TipoSolicitudPqr entity
         */
    public void saveTipoSolicitudPqr(TipoSolicitudPqr entity)
        throws Exception;

    /**
         * Delete an existing TipoSolicitudPqr entity
         *
         */
    public void deleteTipoSolicitudPqr(TipoSolicitudPqr entity)
        throws Exception;

    /**
        * Update an existing TipoSolicitudPqr entity
        *
        */
    public void updateTipoSolicitudPqr(TipoSolicitudPqr entity)
        throws Exception;

    /**
         * Load an existing TipoSolicitudPqr entity
         *
         */
    public TipoSolicitudPqr getTipoSolicitudPqr(Long idTpSolPqr)
        throws Exception;

    public List<TipoSolicitudPqr> findByCriteria(Object[] variables,
        Object[] variablesBetween, Object[] variablesBetweenDates)
        throws Exception;

    public List<TipoSolicitudPqr> findPageTipoSolicitudPqr(
        String sortColumnName, boolean sortAscending, int startRow,
        int maxResults) throws Exception;

    public Long findTotalNumberTipoSolicitudPqr() throws Exception;

    public List<TipoSolicitudPqrDTO> getDataTipoSolicitudPqr()
        throws Exception;
    

	public void guardarTipoSolicitud(TipoSolicitudPqr tipoSolicitudPqr, List<AnexosPqr> anexos, 
			List<MotivoReclamacion> motivoReclamo, List<MotivoSolicitud> motivoSolicitud)throws Exception;
	
	public void modificarTipoSolicitud(TipoSolicitudPqr tipoSolicitudPqr, List<AnexosPqr> anexos, 
			List<MotivoReclamacion> motivoReclamo, List<MotivoSolicitud> motivoSolicitud)throws Exception;
	
	public List<AnxsXTpSolDTO> anexosXIdTipoSolicitud(Long idTipoSolicitud) throws Exception;
	
	public List<MotSolXTpSolDTO> motSolXIdTipoSolicitud(Long idTipoSolicitud) throws Exception;
	
	public List<MotReclXTpSolDTO> motReclXIdTipoSolicitud(Long idTipoSolicitud) throws Exception;
}
